INFYTQ

Longest Vowel substring into a string

input ->abcdaeioub output -> aeiou

In [14]:
s=list(input())
i=0
ans=-1
temp=''
vowel=['a','e','i','o','u']
while(i<len(s)):
    if(s[i] in vowel):
        j=i+1
        while(j<len(s) and s[j] in vowel):
            j+=1
        if(ans<j-i):
            ans=j-i
            temp=s[i:j]
        i=j
    else:
        i+=1
if(ans==-1):
    print(ans)
else:
    print(ans,''.join(temp))
aaaaeeeeeiiiiivowelaeiou 
14 aaaaeeeeeiiiii

Min-Max by Summing Exactly N-1 Element from the list

Input: 8 7 2 4 5 output: 18 24

In [16]:
arr=list(map(int,input().split()))
print(sum(arr)-max(arr),sum(arr)-min(arr))
8 7 2 4 5 
18 24
In [42]:
from itertools import permutations as prm
from itertools import combinations as cbm
a='abc'
print(list(prm(a[1:])))
[('b', 'c'), ('c', 'b')]

Total Number of Substring without a special character

input: abcd,b output: 3

In [ ]:
inp=list(input().split(','))

arr=inp[0]
sp=inp[1]

arr=arr.split(sp)
ans=0
for i in arr:
    n=len(i)
    ans+=n*(n+1)//2
print(ans)    

Longest Common Substring

Input: 2 6 6 ABCDGH ACDGHR 3 2 ABC AC

Output: 4 1

In [18]:
def lcs(a,b,n,m):
    mat=[[0]*(m+1) for i in range(n+1)]
    res=0
    for i in range(1,n+1):
        for j in range(1,m+1):
            if(a[i-1]==b[j-1]):
                mat[i][j]=mat[i-1][j-1]+1
                res=max(res,mat[i][j])
            else:
                mat[i][j]=0
    
    return res

            
a='abcdfnjor'
b='fcdf'
lcs(a,b,len(a),len(b))        
Out[18]:
3
In [41]:
a='abcdffnjor'
i=0
b='fcdffg'
ans=0
for i in range(len(b)):
    for j in range(i,len(b)):
        check=b[i:j+1]
        try:
            x=a.index(check)
            if(ans<j-i+1):
                ans=j-i+1
                print(b[i:j+1],ans)
        except:
            pass
            

print(ans)
f 1
cd 2
cdf 3
cdff 4
4

Bounded Region

aeod..-has one bounded region B8-has two bounded region

return total count of bounded region

Repeted k times

input:

5

2 2 1 3 1

2

output:

1

In [64]:
n=int(input())
arr=list(map(int,input().split()))
k=int(input())
hm={}
for i in arr:
    if i in hm.keys():
        hm[i]+=1
    else:
        hm[i]=1

s=sorted(hm.keys())

for i in s:
    if hm[i]>=k:
        print(i)
        break
5
2 2 1 3 1
2
1

Making Anagrams

abcd abcde

remove e to make two strings Anagram of each other

Password Generator

Screenshot%20%28235%29.png

In [70]:
n=input().split(',')
arr=[]
ans=''
for i in n:
    name,num=i.split(':')
    temp=-1
    for j in num:
        if(int(j)<=len(name)):
            temp=max(temp,int(j))
    if(temp==-1):
        ans+='X'
    else:
        ans+=name[temp-1]
print(ans)
    

    
Abhishek:34848,Mayur:4739,friends:2949,Yeah:9898
kueX

OTP generatorScreenshot%20%28236%29.png

In [72]:
n=input()
arr=[]
for i in range(1,len(n),2):
    arr.append(int(n[i]))
for i in range(len(arr)):
    arr[i]=str(arr[i]**2)
print(arr)
print(''.join(arr)[:4])
4365188
['9', '25', '64']
9256

Screenshot%20%28237%29.png

In [84]:
b=list(input())

s=[]

op=['{','[','(']
cl=['}',']',')']
i=0
while(i<len(b)):
    if(b[i] in cl):
        if(len(s))==0:
            break
        elif(cl.index(b[i])!=op.index(s[-1])):
           break
        else:
           s.pop(-1)
    else:
        s.append(b[i])
    i+=1
print(i+1)
    
{{[]}}}
[]
['{']
['{', '{']
['{', '{', '[']
['{', '{']
['{']
[]
7

Screenshot%20%28238%29.png

In [74]:
n=list(input())

rev=[]
spe=[]

for i in range(len(n)):
    if n[i].isalpha():
        rev.append(n[i])
    else:
        spe.append(i)
rev.reverse()
print(rev)
for i in range(len(spe)):
    rev.insert(spe[i],n[spe[i]])
print(''.join(rev))
A@bcd1abx
['x', 'b', 'a', 'd', 'c', 'b', 'A']
x@bad1cbA

Screenshot%20%28239%29.png

In [75]:
n=list(input())
h=len(n)//2
flag=0
for i in range(h,0,-1):
    prefix=n[:i]
    suffix=n[len(n)-i:]
    if(prefix==suffix):
        print(len(prefix))
        flag=1
        break
if(flag==0):
    print(-1)
A@bcd1abx
-1

Screenshot%20%28240%29.png

In [77]:
n=input()
arr=[]
for i in n:
    if(i.isnumeric()):
        arr.append(i)


arr=list(set(arr))

arr=sorted(arr,reverse=True)

if(int(''.join(arr))%2==0):
    print(''.join(arr))
else:
    rem=-1
    for i in range(len(arr)-1,-1,-1):
        if(int(arr[i])%2==0):
            rem=arr[i]
            arr.pop(i)
            break
    if(rem==-1):
        print(-1)
    else:
        arr.append(rem)
        print(''.join(arr))
        
Abcd1abx
-1

Screenshot%20%28241%29.png

In [78]:
lw=[0]*26
up=[0]*26

s=list(input())
ans=''
i,j=0,0
n=len(s)

while(i<n):
    while(j<n):
        if(s[j].islower()):
            if(lw[ord(s[j])-97]!=0):
                break
            else:
                lw[ord(s[j])-97]+=1
        elif(s[j].isupper()):
            if(up[ord(s[j])-65]!=0):
                break
            else:
                lw[ord(s[j])-65]+=1
        j+=1
    if(len(ans)<j-i):
        ans=s[i:j]
    if(s[i].islower()):
        lw[ord(s[i])-97]-=1
    else:
        up[ord(s[i])-65]-=1
    i+=1
        
if(len(ans)<3):
    print(-1)
else:
    print(ans)
            
A@bcd1abx
['A', '@', 'b', 'c', 'd', '1']

Screenshot%20%28242%29.png

In [66]:
s=list(input())
start=s.index('5')
end=s.index('8')
ans=0
for i in range(start):
    ans+=int(s[i])
for i in range(end+1,len(s)):
    ans+=int(s[i])
# print(ans,int(''.join(s[start:end+1])))
print(ans+int(''.join(s[start:end+1])))
578
578

QUESTION 3:

Read ‘m’ and ‘n’. Take m*n matrix. If any number is consecutive 3 times either in row ,column ,diagonals print that number , if there are multiple numbers then print min of those numbers.

In [21]:
n,m=map(int,input().split())

arr=[]

for i in range(n):
    temp=list(map(int,input().split()))
    arr.append(temp)
ans=9999999
for i in range(n):
    for j in range(m):
        if(i>=2):
            if(arr[i-2][j]==arr[i-1][j] and arr[i-1][j]==arr[i][j]):
                ans=min(ans,arr[i][j])
        if(j>=2):
            if(arr[i][j-2] == arr[i][j-1] and arr[i][j-1]==arr[i][j]):
                ans=min(ans,arr[i][j])
        if(i>=2 and j>=2):
            if(arr[i-1][j-1]==arr[i-2][j-2] and arr[i-2][j-2]==arr[i][j]):
                ans=min(ans,arr[i][j])
        if(i>=2 and j<m-2):
            if(arr[i-1][j+1]==arr[i-2][j+2] and arr[i][j]==arr[i-2][j+2]):
                ans=min(ans,arr[i][j])
print(ans)
3 3
9 9 7
8 8 7
6 6 7
7

Screenshot%20%28247%29.png

In [53]:
A=[0]*10
B=[0]*10
C=[0]*10
D=[0]*10
start=[]
arr=list(map(list,input().split(',')))
start.append(int(arr[-1][-1]))
for i in range(len(arr)):
    A[int(arr[i][-1])-1]=1
arr=list(map(list,input().split(',')))
start.append(int(arr[-1][-1]))
for i in range(len(arr)):
    B[int(arr[i][-1])-1]=1
arr=list(map(list,input().split(',')))
start.append(int(arr[-1][-1]))
for i in range(len(arr)):
    C[int(arr[i][-1])-1]=1
arr=list(map(list,input().split(',')))
start.append(int(arr[-1][-1]))
for i in range(len(arr)):
    D[int(arr[i][-1])-1]=1
    

d=[]
print(start)

d.append(['A',A.count(0)])
d.append(['B',B.count(0)])
d.append(['C',C.count(0)])
d.append(['D',D.count(0)])
ans=[]
print(d)
d=sorted(d,key=lambda item:item[1],reverse=True)
print(d)
cars=int(input())
for i in range(4):
    slot=d[i][0]
    avail=d[i][1]
    if(cars>avail):
        ans.append(avail)
        cars-=avail
    else:
        ans.append(cars)
        cars=0
    if(cars==0):
        break
if(cars!=0):
    print('X')
else:
    pr=''
    for i in range(len(ans)):
        slot=d[i][0]
        beg=0
        if(slot=='A'):
            beg=start[0]
        elif(slot=='B'):
            beg=start[1]
        elif(slot=='C'):
            beg=start[2]
        elif(slot=='D'):
            beg=start[3]
        for p in range(1,ans[i]+1):
            pr+=slot
            pr+=str(beg+p)
            pr+=' '
    print(pr)
            
            
            
            
    
A1,A2,A3,A4
B1,B2,B3
C1,C2
D1,D2,D3,D4,D5
[4, 3, 2, 5]
[['A', 6], ['B', 7], ['C', 8], ['D', 5]]
[['C', 8], ['B', 7], ['A', 6], ['D', 5]]
10
C3 C4 C5 C6 C7 C8 C9 C10 B4 B5 

Screenshot%20%28248%29.png

QUESTION 19: An array of integers will be given and a sum is given. Input:- -1 , 1, 0,0,2,-2 Sum=0 Output:- 3

In [70]:
arr=list(map(int,input().split(',')))
from itertools import combinations
ans=list(combinations(arr,4))
n=int(input())
count=0
for i in ans:
    if(sum(i)==n):
        count+=1
print(count)
print(ans)
-1,1,0,0,2,-2
0
3
[(-1, 1, 0, 0), (-1, 1, 0, 2), (-1, 1, 0, -2), (-1, 1, 0, 2), (-1, 1, 0, -2), (-1, 1, 2, -2), (-1, 0, 0, 2), (-1, 0, 0, -2), (-1, 0, 2, -2), (-1, 0, 2, -2), (1, 0, 0, 2), (1, 0, 0, -2), (1, 0, 2, -2), (1, 0, 2, -2), (0, 0, 2, -2)]
In [69]:
'1'.isnumeric()
Out[69]:
True
In [87]:
ans=['']*26
arr=list(input())
for i in arr:
    prev=''
    prev=ans[ord(i.lower())-97]+i
    ans[ord(i.lower())-97]=prev
act=[]
for i in ans:
    if(i==''):
        continue
    else:
        act.append(i)

i=0
j=len(act)-1
print(*act)
while(i<=j):
    if(i==j):
        print(act[i])
        break
    print(act[i],end='')
    print(act[j],end='')
    i+=1
    j-=1
HeLloOWorldD
dD e H Lll oOo r W
dDWerHoOoLll
In [4]:
arr=list(map(int,input().split()))

ans=[]

for i in range(len(arr)-1):
    for j in range(i+1,len(arr)-1):
        ele1=arr[i]
        ele2=arr[j]
        temp=[]
        temp.append(ele1)
        temp.append(ele2)
        for k in range(j+1,len(arr)):
            if(arr[k]==ele1+ele2):
                temp.append(arr[k])
                ele1=ele2
                ele2=arr[k]
        ans.append(temp)
res=0
temp=0
for i in range(len(ans)):
    if(res<len(ans[i])):
        res=len(ans[i])
        temp=i
print(*ans[temp])
2 6 3 5 8 9
2 3 5 8
In [ ]:
 
In [ ]: